package org.linlinjava.litemall.db.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.ibatis.type.IntegerTypeHandler;
import org.linlinjava.litemall.db.handler.IntegerArrayJsonTypeHandler;
import org.linlinjava.litemall.db.handler.ListIntegerTypeHandler;
import org.linlinjava.litemall.db.mybatis.JsonIntegerArrayTypeHandler;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @auth :ply
 * @date 2024/6/11 14:11
 * @Description TODO
 * 套餐表
 */
@Data
@TableName(value = "litemall_order_package",autoResultMap = true)
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class LitemallOrderPackage {

    /**
     * id
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 订单id
     */
    private Integer orderId;

    /**
     * 门店id
     */
    private Integer shopId;

    /**
     * 套餐编号
     */
    private String packageNumber;

    /**
     * 商品ID集合
     */
    @TableField(typeHandler = ListIntegerTypeHandler.class)
    private List<Integer> goodsIds;

    /**
     * 类别id
     */
    private Integer categoryId;

    /**
     * 序号
     */
    private Integer number;

    /**
     * 金额
     */
    private BigDecimal amount;

    /**
     * 套餐名称
     */
    private String packageName;

    /**
     * 小标题
     */
    private String subhead;

    /**
     * 套餐图片
     */
    private String packageImg;

    /**
     * 制作状态
     */
    private Byte madeStatus;

    /**
     * 标签
     */
    private String label;

    /**
     * 是否支持退换
     */
    private Boolean isReturn;

    /**
     * 套餐价格
     */
    private BigDecimal packagePrice;

    /**
     * 计量单位
     */
    private String meteringUnit;

    /**
     * 套餐简介
     */
    private String packageIntroduction;

    /**
     * 宣传画廊
     */
    private String disseminateGallery;

    /**
     * 套餐详情介绍
     */
    private String packageDetailsIntroduce;

    /**
     * 操作说明
     */
    private String operationExplain;

    

    /**
     * 创建人
     */
    private String addUserId;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT) //插入时自动填充
    private LocalDateTime addTime;

    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.UPDATE) // 插入 和 更新时 自动填充
    private LocalDateTime updateTime;

    /**
     * 修改人
     */
    private String updateUserId;

    /**
     * 是否删除(0否 1是)
     */
    @TableLogic
    private Boolean deleted;


}
